Mail piece production and shipping systems are examples of data processing systems whose purpose is to utilize a variety of peripheral devices to produce data which may be further implemented in a variety of applications such as for example a carrier manifest. These systems typically include an application or client communicating with a peripheral device, such as, for example, a scale or a meter. Such peripheral devices are well known in the art.
In typical use these systems determine the weight of a mail piece or the amount of postage required for the mail piece. The mail piece data obtained from such application may then be utilized in further applications such as tripping a mail machine, carrier management, or other desired mailing systems. Such mail piece production systems and shipping systems are known in the art and have developed with changes in postal regulations (such as those of the United States Postal Service, or USPS) and with proliferation of appropriate software applications. In turn, this production has served the need to automate and accelerate to accommodate growth.
These prior systems, however, do not have the capability of providing a standard interface for communicating between a variety of applications and a plurality of peripheral devices. Nor do these systems have the capability of sharing peripheral devices between multiple applications running on the same personal computer. As well, these prior systems do not provide a common interface for all peripheral devices. As user interest in customization of mailing systems applications has increased, so to has the need to provide an effective, efficient and inexpensive solution for communicating between a client and a variety of peripheral devices.
As the capabilities of data processing systems have grown, so to have the requirements that are tasked to these systems. Greater speed in these systems has given rise to more detailed-oriented applications, greater memory capability has made memory intensive applications more attractive, and detailed applications have lead to more wide spread use of previously inaccessible data processing abilities. With the spiraling growth in data processing ability, there has grown a need for more efficient, ways of programming that promote speed as well as flexibility. Flexibility, in particular, allows applications that have been designed in varied programming languages, or operating on different platforms to be able to communicate without extensive systems or file modification.
One such means of promoting flexibility within a data processing system is the use of xe2x80x9cobject-orientedxe2x80x9d design (OOD). Object oriented programming languages are useful in removing some of the restrictions that have hampered application design due to the inflexibility of traditional programming languages.
OOD utilizes a basic element or construct known as the xe2x80x9cobject,xe2x80x9d which combines both a data structure and an intended behavior characteristic within the single element. Objects are bundles of data and the procedures which best identify the use of that data. Objects can be specific or conceptual and are often used to represent models of real-world object groupings; this has the effect of helping software applications become an organized collection of discrete objects in which data is held or moved based on the intended behavior of an object which is inherently unique. Each object knows how to perform some activity.
The objects interact and communicate with each other via messages. A message is initiated by one object for the purpose of getting a second message to perform an act such as performing the steps of a method. Information parameters may be passed along with the message so that the receiving object will have guidelines for performing its action.
Software objects share two characteristics; they all have xe2x80x9cstatexe2x80x9d and xe2x80x9cbehavior.xe2x80x9d The State is the condition of the object expressed in variables or properties (what it knows), while behavior is implemented by performance of a method (what it can do). Packaging the object""s variables, together with its methods is called xe2x80x9cencapsulation or storing.xe2x80x9d Encapsulation is used to hide unimportant implementation details from other objects; and, this in turn provides two primary benefits to software developers. These benefits are: (1) modularity and (2) information hiding.
Modularity of objects means that the source code for an object can be written and maintained independently of the source code for other objects, thus allowing a certain autonomy of purpose for each individual object. Information hiding, on the other hand, is the ability to keep private certain of its data and methods without effecting the other objects which may depend upon it. Common dependencies among objects can maintain communication by utilizing a public interface for information sharing.
Objects interact and communicate with each other through the use of messages. Each message has three components that are necessary for receiving object to be able to perform a desired method; these are: 1) the object to whom the message is addressed; 2) the name of the method that is to be performed; and 3) the method required parameters. Because these three components alone represent what is required for methods to be activated, it is not required that objects be located within the same process in order for communication to take place. Message use, therefore, is the supporting means for object interaction. But to be of value to a particular application, objects must be able to be referenced.
Referencing is accomplished through indexing, addressing or through value assignment which can be placed in a table for use as required. Objects can also be arranged by classification. Classification is based on groupings of objects based upon properties or characteristics important to an application or requirement. Each class describes a potentially infinite set of objects that comprise the class. Object interaction can be further optimized by the use of class distinction. Classes are organizational blueprints that define the variables and methods which are common to all objects of a particular group. Values for each of the variables are assigned and allocated to memory when an assistance from a class is created. Additionally, methods can only be performed when a class instance has been allocated to memory. Thus, the most distinct advantage of class use is the ability to reuse the classes and thus further create more objects. Classes in turn can be subdivided into subclasses which inherit the state of the underlying class. the further advantage being the ability to create specialized implementations of methods.
The constant growth an expansion of software system and the hardware platforms that support them has led to the emergence of object oriented programming which reduces time and memory capacity requirements by taking advantage of certain redundancies by treating them as unique software objects.
The advantages of objects lie in the ability of objects to link performance characteristics. The linking of objects to applications is done through object linking and embedding techniques known by the acronym xe2x80x9cOLE.xe2x80x9d This greatly optimizes the using system""s ability to find data and use it effectively. Systems that utilize formats whose structure and requirements repeat, would benefit greatly from object oriented techniques. And, if the system were to be able to define its principle data requirements in the form of objects, it would inherit the advantages of he object oriented environment while maintaining the inherent systems advantages.
OOD is known in the software arts and specific discussion of application design based upon OOD is not required for a thorough understanding of the applicant""s claimed invention. It is, however, one object of the present claimed invention to disclose a method and system for utilizing object oriented design for effectively and efficiently linking applications within a data production system.
The mailing systems art specifically shipping systems and carrier management systems can clearly benefit from a method that captures the peripheral device parameters and employs those methods within a system that provides a single interface server for communicating between applications and a variety of peripheral devices. Therefore it is an object of the present invention to provide a standard interface to a variety of scales and meters for use in any application. It is also an object of this invention to provide a standard interface for all types of scales and meters. It is a further object of this invention to relieve the application of the responsibility of supporting new scales and meters as they are developed. Yet another object of this invention is to allow sharing of peripheral devices between multiple applications running on the same personal computer.
The limitations of the prior art are overcome by a method for creating an interface in an object oriented development environment of a data processing system for embedding within one or more software applications.
The present claimed invention is a method and system of providing interactive standard set of visual basic and C++Active x interfaces between a scales and postage meter peripherals for use in any application. The invention manages the scales and postal meters peripherals attached to a personal computer for a shipping or similar applications. The interface provides a scale independent application level interface to a scale or platform. Though use of the interface requirements of the present invention applications have the ability to communicate with a variety of scales without regard to scale specifics. This requires that all data values, formats and sequence of events must be normalized across all scale types and models.
Active X is a set of integration technologies that enable software components to inter-operate in a networked environment using any programming language. Active X controls are individual components that have a specific function (displaying a list box, displaying a command button, waiting a certain number of seconds, etc.) that when used together can create navigation tool and complete on-line applications. Active X controls are used throughout Microsoft Windows applications and are typically called an OCX file. AcitveX provides support from a wide range of tools including Microsoft Visual Basic. Visual Basic is known in the art, a detailed description of Visual Basic is not necessary for an understanding of this invention.
The ActiveX components must run under Microsoft Windows 32 bit operating systems, such as for example, WINDOWS 95 NT 4.0, WIDOWS 98, WINDOWS NT 5.0 developed by MICROSOFT Corp.
The scales or meter server consists of several main components. The main server executable, the multiple loadable scale driver dynamics link libraries (dll""s), and the registration database entries. The system server may also include a Scale OCX, and a Scale Utility.
The method and system of the present invention provides a standard interface between a client and a plurality of peripheral devices. In one embodiment, the interface can be established by creating an interface object and a peripheral object in an object oriented development environment of a data processing system. The method and system includes both the object creation environment and the method of object utilization. The client requests and stores an interface object from a server and establishes an interface object by storing object methods and object properties within the interface object by utilizing a programming interface. The user then selects either a scale or meter peripheral device from a collection of devices, the client then request the server to create an object corresponding to the selected peripheral device. A peripheral object is created and stored within the client. Communication between the client and the peripheral device is established by implementing the created objects methods and properties.
In another embodiment the client creates a peripheral interface object which includes both the scale and meter interface included with are the methods and properties. The user selects a peripheral device from a plurality of peripheral devices. The client requests a peripheral interface object from a server and establishes a peripheral interface object corresponding to said selected peripheral device. The peripheral interface object is created by storing object methods within the peripheral interface object by utilizing a programming interface and by storing object properties within the peripheral interface object by utilizing the programming interface. The peripheral interface object is then stored within the client. The properties and methods are then utilizing said peripheral interface object to communicate between said client and said selected peripheral device under the direction of said client.
The server of the present invention further includes a peripheral module. The peripheral module comprises a set of data tables that may include gravity compensation tables and error code determining tables. The gravity compensation tables may comprise a zip code directory, an area code directory, a grid directory or some other means of determining gravity compensation for a given point in space.
The interface object of the present invention may also establish a human interface for allowing data to be displayed to a system operator under direction from said object methods. The human interface may be a monitor, a printer or the like. The peripheral device may be a scale, a meter or the like.